package org.bibpessoal.fachada;

import java.util.List;

import javax.ejb.Remote;

import org.bibpessoal.entidades.Amizade;
import org.bibpessoal.entidades.Emprestimo;
import org.bibpessoal.entidades.Livro;
import org.bibpessoal.entidades.Usuario;
import org.bibpessoal.exceptions.LivroInvalidoException;
import org.bibpessoal.exceptions.UsuarioInvalidoException;

@Remote
public interface BiblitoecaPessoalFachada {
	public Usuario autenticarUsuario(String login, String senha) throws UsuarioInvalidoException;
	public boolean cadastrarUsuario(Usuario novo) throws UsuarioInvalidoException;
	public List<Usuario> getOutrosUsuarios(int idUsuario) throws UsuarioInvalidoException;
	public List<Livro> getLivrosPorUsuario(int idUsuario) throws UsuarioInvalidoException;
	public boolean cadastrarLivro(Usuario usuario, Livro livro) throws LivroInvalidoException;
	public List<Livro> buscarLivro(String titulo, int idUsuario);
	public boolean solicitarAmizade(Amizade amizade);
	public boolean responderSolicitacao(Amizade amizade);

	public List<Emprestimo> getLoansRequests();
	public List<Emprestimo> getLoansDevolved();
	public List<Emprestimo> getLoansPendent();
	public Emprestimo getOneLoan(int i);
	public List<Emprestimo> getRangeLoan(int start, int range);

	public List<Livro> getLivrosEmprestadosAMaisDeUmMes();

}
